/**
 * 过河卒
 *
 * 描述
 * 棋盘上 A点有一个过河卒，需要走到目标 B点。卒行走的规则：可以向下、或者向右。
 * 同时在棋盘上 C 点有一个对方的马，该马所在的点和所有跳跃一步可达的点称为对方
 * 马的控制点。因此称之为“马拦过河卒”。
 *
 * 棋盘用坐标表示，A 点 (0, 0)、B点(n,m)，同样马的位置坐标是需要给出的。
 * 现在要求你计算出卒从 A点能够到达 B点的路径的条数，假设马的位置(x,y)是
 * 固定不动的，并不是卒走一步马走一步。
 *
 * 注：马一次跳跃到达的点(x1,y1)和马原坐标(x,y)的关系是
 * |x1−x|+|y1−y|=3，
 * 且 x1 != x, y1 != y
 * 数据范围：
 * 1≤n,m≤20 ，
 *
 * 马的坐标
 * 0≤x,y≤20
 * 1≤a,b,c,d≤1000
 *
 * 输入描述：
 * 仅一行，输入 n,m,x,y 四个正整数。分别表示B点坐标和马的坐标
 *
 * 输出描述：
 * 输出路径总数
 */

import java.util.Scanner;

/**
 * 使用动态规划解决, 这里要去掉几个特殊的点,
 * 这些特殊的点就用距离来去掉
 * dp[i][j] : 到达 i, j 位置的总路径数
 * 时间复杂度 : O(n ^ 2)
 * 空间复杂度 : O(n ^ 2)
 */

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 目标位置
        // 这里要注意, 二话数组不一样, 要多加个 1
        int n = in.nextInt() + 1, m = in.nextInt() + 1;

        // 马 的位置
        int x = in.nextInt(), y = in.nextInt();

        // 后面反复用先定义出来
        // 这里注意用 long 因为后面加起来的数会很大
        long a, b;

        // 动态数组
        long[][] dp = new long[n][m];

        // 距离, 等于这个距离的就会被淘汰
        int des = 5;

        // 初始化
        // 这里注意中途有一个被淘汰了, 后面就不能使用了, 其实也可以放到正常的里面进行, 不用初始化, 开个位置给他就行
        for (int i = 0; i < n; i++) {
            a = getPow(i - x);
            b = getPow(y);
            if (a + b != des && a + b != 0) {
                dp[i][0] = 1;
            } else {
                break;
            }
        }

        for (int j = 0; j < m; j++) {
            a = getPow(x);
            b = getPow(j - y);
            if (a + b != des && a + b != 0) {
                dp[0][j] = 1;
            } else {
                break;
            }
        }

        // 这里还要注意马的位置也是不能走的
        for (int i = 1; i < n; i++) {
            for (int j = 1; j < m; j++) {
                a = getPow(i - x);
                b = getPow(j - y);
                if (a + b != des && a + b != 0) {
                    dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
                }
            }
        }

        // 返回结果
        System.out.println(dp[n - 1][m - 1]);
    }

    // 求平方
    public static long getPow(int x) {
        return x * x;
    }
}